package com.lcz.authority.common.domain.entity;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lcz.authority.common.domain.BaseEntity;
import com.zhou.starter.jpacomment.annotation.ColumnComment;
import com.zhou.starter.jpacomment.annotation.TableComment;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * @author lcz
 * @desc 资源实体
 * @mail lcz_0130@163.com
 * @date 2024/05/06
 */

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_resource")
@Table(name = "sys_resource")
@Entity
@TableComment("需要认证的接口资源表")
public class SysResourceEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @Id
    @TableId(type = IdType.ASSIGN_ID)
    @ColumnComment("主键id")
    private String resourceId;

    /**
     * 应用编码
     */
    @ColumnComment("应用编码")
    private String appCode;

    /**
     * 资源编码
     */
    @ColumnComment("资源编码")
    private String resourceCode;

    /**
     * 资源名称
     */
    @ColumnComment("资源名称")
    private String resourceName;

    /**
     * 类名称
     */
    @ColumnComment("类名称")
    private String className;

    /**
     * 方法名称
     */
    @ColumnComment("方法名称")
    private String methodName;

    /**
     * 资源模块编码，一般为控制器类名，名称替换Controller为空
     */
    @TableField(exist = false)
    @Transient
    private String modular_code;

    /**
     * 资源模块名称，一般为控制器名称
     */
    @ColumnComment("资源模块名称")
    private String modularName;

    /**
     * 资源url
     */
    @ColumnComment("资源url")
    private String url;

    /**
     * http请求方法
     */
    @ColumnComment("http请求方法")
    private String httpMethod;

    /**
     * 资源的业务类型：1-业务类，2-系统类
     */
    @ColumnComment("资源的业务类型：1-业务类，2-系统类")
    private Integer resourceBizType;

    /**
     * 是否需要鉴权：Y-是，N-否
     */
    @ColumnComment("是否需要鉴权：Y-是，N-否")
    private String requiredPermissionFlag;

}
